package main

import (
	"fmt"
	"net"
	"net/rpc"
	"net/rpc/jsonrpc"
)

func main() {
	//服务端采用了通用的json编码协议，这里也将rpc的拨号换为net的拨号，只发连接，不编码
	conn, err := net.Dial("tcp", "localhost:1234")
	if err != nil {
		panic("连接失败" + err.Error())
	}
	//客户端第二步： 调用函数，采用Call()   格式Call("服务端注册到rpc名称.对应对象上的方法",入参1,入参2)
	var reply *string = new(string) //指针要使用必须要有地址，指针默认是nill没有地址，所有需要new,不然使用报错
	//服务端跟换json的协议，这个需要增加解码
	client := rpc.NewClientWithCodec(jsonrpc.NewClientCodec(conn))
	err = client.Call("HelloService_1.Hello", "World", reply)
	if err != nil {
		panic("调用失败")
	}
	//打印结果，*取指针的值
	fmt.Println(*reply)
}
